home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Timer.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  2.6 KB  |  118 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Timer.p
  3.  
  4.      Contains:    Time Manager interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1985-1993, 1995-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Timer;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __TIMER__}
  28. {$SETC __TIMER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC TimerIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __CONDITIONALMACROS__}
  35. {$I ConditionalMacros.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MACTYPES__}
  38. {$I MacTypes.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __OSUTILS__}
  41. {$I OSUtils.p}
  42. {$ENDC}
  43.  
  44.  
  45. {$PUSH}
  46. {$ALIGN MAC68K}
  47. {$LibExport+}
  48.  
  49.  
  50. CONST
  51.                                                                 {  high bit of qType is set if task is active  }
  52.     kTMTaskActive                = $00008000;
  53.  
  54.  
  55. TYPE
  56.     TMTaskPtr = ^TMTask;
  57. {$IFC TYPED_FUNCTION_POINTERS}
  58.     TimerProcPtr = PROCEDURE(tmTaskPtr: TMTaskPtr);
  59. {$ELSEC}
  60.     TimerProcPtr = Register68kProcPtr;
  61. {$ENDC}
  62.  
  63.     TimerUPP = UniversalProcPtr;
  64.     TMTask = RECORD
  65.         qLink:                    QElemPtr;
  66.         qType:                    INTEGER;
  67.         tmAddr:                    TimerUPP;
  68.         tmCount:                LONGINT;
  69.         tmWakeUp:                LONGINT;
  70.         tmReserved:                LONGINT;
  71.     END;
  72.  
  73. PROCEDURE InsTime(tmTaskPtr: QElemPtr);
  74.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  75.     INLINE $205F, $A058;
  76.     {$ENDC}
  77. PROCEDURE InsXTime(tmTaskPtr: QElemPtr);
  78.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  79.     INLINE $205F, $A458;
  80.     {$ENDC}
  81. PROCEDURE PrimeTime(tmTaskPtr: QElemPtr; count: LONGINT);
  82.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  83.     INLINE $201F, $205F, $A05A;
  84.     {$ENDC}
  85. PROCEDURE RmvTime(tmTaskPtr: QElemPtr);
  86.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  87.     INLINE $205F, $A059;
  88.     {$ENDC}
  89. PROCEDURE Microseconds(VAR microTickCount: UnsignedWide);
  90.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  91.     INLINE $A193, $225F, $22C8, $2280;
  92.     {$ENDC}
  93.  
  94. CONST
  95.     uppTimerProcInfo = $0000B802;
  96.  
  97. FUNCTION NewTimerProc(userRoutine: TimerProcPtr): TimerUPP;
  98.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  99.     INLINE $2E9F;
  100.     {$ENDC}
  101.  
  102. PROCEDURE CallTimerProc(tmTaskPtr: TMTaskPtr; userRoutine: TimerUPP);
  103.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  104.     {To be implemented:  Glue to move parameters into registers.}
  105.     {$ENDC}
  106.  
  107.  
  108. {$ALIGN RESET}
  109. {$POP}
  110.  
  111. {$SETC UsingIncludes := TimerIncludes}
  112.  
  113. {$ENDC} {__TIMER__}
  114.  
  115. {$IFC NOT UsingIncludes}
  116.  END.
  117. {$ENDC}
  118.